package com.admin.mds.system.model.entity;

import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotBlank;
import cn.afterturn.easypoi.excel.annotation.Excel;


/**
 * 用户信息表实体类
 * 
 * @author monxz
 * @Date 2021-01-29
 */
@Getter
@Setter
public class SysUserEntity {

	/**
	 * 用户ID
	 */
	private String userId;

	/**
	 * 用户账号
	 */
	@Excel(name = "用户账号", orderNum = "1")
	@NotBlank(message = "用户名不能为空！")
	private String userName;

	/**
	 * 用户昵称
	 */
	@Excel(name = "用户昵称", orderNum = "2")
	@NotBlank(message = "用户昵称不能为空！")
	private String nickName;

	/**
	 * 用户类型（00系统用户）
	 */
	private String userType;

	/**
	 * 用户邮箱
	 */
	@Excel(name = "用户邮箱", orderNum = "5")
	private String email;

	/**
	 * 手机号码
	 */
	@Excel(name = "手机号码", orderNum = "4")
	private String phonenumber;

	/**
	 * 用户性别（0男 1女 2未知）
	 */
	@Excel(name = "用户性别", replace = { "男_0", "女_1" }, orderNum = "3")
	private String sex;

	/**
	 * 头像地址
	 */
	private String avatar;

	/**
	 * 密码
	 */
	@NotBlank(message = "用户密码不能为空！")
	private String password;

	/**
	 * 帐号状态（0正常 1停用）
	 */
	@Excel(name = "状态", replace = { "正常_0", "停用_1" }, orderNum = "3")
	private String status;

	/**
	 * 删除标志（0代表存在 2代表删除）
	 */
	private String delFlag;

	/**
	 * 创建者
	 */
	private String createBy;

	/**
	 * 创建时间
	 */
	private String createTime;

	/**
	 * 更新者
	 */
	private String updateBy;

	/**
	 * 更新时间
	 */
	private Date updateTime;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 用户角色
	 */
	private List<String> roles;

	/**
	 * 用户最大角色级别
	 */
	private Integer maxRoleLevel;

	/**
	 * 用户权限字符
	 */
	private List<String> permissions;

	private List<SysRoleEntity> roleList = new ArrayList<SysRoleEntity>();

	private List<String> roleIds = new ArrayList<>();

	private Map<String, Object> params = new HashMap<String, Object>();

}